﻿using System;
using System.ServiceModel;

namespace DiPlaner.Remote
{
    [ServiceContract]
    interface IRemotingApi
    {
        [OperationContract]
        bool Init(int dbPID);

        [OperationContract(IsOneWay = true)]
        void RestartDB(int dbPID);

        [OperationContract(IsOneWay = true)]
        void RestartD3(int dbPID);

        [OperationContract]
        string[] GetProfileNames();

        [OperationContract]
        string GetCurrentProfileName(int dbPID);

        [OperationContract(IsOneWay = true)]
        void StartProfile(string profileName);

        [OperationContract(IsOneWay = true)]
        void StopProfile(string profileName);

        [OperationContract(IsOneWay = true)]
        void PauseProfile(string profileName);

        [OperationContract(IsOneWay = true)]
        void IdleProfile(string profileName, TimeSpan time);

        [OperationContract(IsOneWay = true)]
        void Logon(string key, int pid, string bnet_acc, string bnet_pass, string title, string routine, int minutes, bool noflash, bool autostart);

        [OperationContract]
        int GetProfileStatus(string profileName);

        [OperationContract(IsOneWay = true)]
        void SetProfileStatusText(int dbPID, string status);

        [OperationContract(IsOneWay = true)]
        void SetBotInfoToolTip(int dbPID, string tooltip);

        [OperationContract(IsOneWay = true)]
        void SkipCurrentTask(string profileName);
    }
}
